package com.gs.domain;

import java.io.Serializable;
import java.util.Set;

import comi.gsi.command.javabeancommand.AbstractOggettoEntita;

/**
 * The persistent class for the CATSPESE database table.
 * 
 */
public class CatSpese extends AbstractOggettoEntita implements Serializable, ICatSpese {
	private static final long serialVersionUID = 1L;

	private String descrizione;

	private int idCategoria;

	// @Column(name="idGruppo", nullable=false)
	// private int idGruppo;

	private String importanza;

	private String nome;

	// bi-directional one-to-one association to Budget
	private Budget budget;

	// bi-directional many-to-one association to Gruppi
	private Gruppi gruppi;

	// bi-directional many-to-one association to SingleSpesa
	private Set<SingleSpesa> singleSpesas;

	public CatSpese() {
	}

	@Override
	public String getdescrizione() {
		return this.descrizione;
	}

	@Override
	public void setdescrizione(final String descrizione) {
		this.descrizione = descrizione;
	}

	@Override
	public int getidCategoria() {
		return this.idCategoria;
	}

	@Override
	public void setidCategoria(final int idCategoria) {
		this.idCategoria = idCategoria;
	}

	@Override
	public String getimportanza() {
		return this.importanza;
	}

	@Override
	public void setimportanza(final String importanza) {
		this.importanza = importanza;
	}

	@Override
	public String getNomeEntita() {
		return this.nome;
	}

	@Override
	public void setnome(final String nome) {
		this.nome = nome;
	}

	@Override
	public Budget getBudget() {
		return this.budget;
	}

	@Override
	public void setBudget(final Budget budget) {
		this.budget = budget;
	}

	@Override
	public Gruppi getGruppi() {
		return this.gruppi;
	}

	@Override
	public void setGruppi(final Gruppi gruppi) {
		this.gruppi = gruppi;
	}

	@Override
	public Set<SingleSpesa> getSingleSpesas() {
		return this.singleSpesas;
	}

	@Override
	public void setSingleSpesas(final Set<SingleSpesa> singleSpesas) {
		this.singleSpesas = singleSpesas;
	}

	@Override
	public String toString() {
		return nome;
	}

	public static final String NOME_TABELLA = "cat_spese";
	public static final String ID = "idCategoria";
	public static final String DESCRIZIONE = "descrizione";
	public static final String IMPORTANZA = "importanza";
	public static final String NOME = "nome";
	public static final String IDGRUPPO = "idGruppo";

	public static final String IMPORTANZA_FUTILE = "Futili";
	public static final String IMPORTANZA_VARIABILE = "Variabili";
	public static final String IMPORTANZA_FISSO = "Fisse";

	@Override
	public String getIdEntita() {
		return Integer.toString(getidCategoria());
	}

	public CatSpese clona() {
		CatSpese clonata = new CatSpese();
		clonata.setnome(this.getNomeEntita());
		clonata.setdescrizione(this.getdescrizione());
		clonata.setimportanza(this.getimportanza());
		clonata.setGruppi(this.getGruppi() != null ? this.getGruppi().clona() : null);
		clonata.setidCategoria(this.getidCategoria());
		return clonata;
	}

	@Override
	public AbstractOggettoEntita getEntita() {
		return this;
	}
}